package interfazUsuario.main;

import interfazUsuario.botones.Boton;
import interfazUsuario.botones.BotonAbstract;
import interfazUsuario.botones.BotonExpListaBoton;

import java.io.IOException;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import utilsJ2ME.listas.ListaBotonJ2ME;
import utilsJ2ME.listas.ListaUsuarioJ2ME;

import cultivameCore.motor.Accion;
import cultivameCore.motor.Refrescable;
import cultivameCore.motor.threads.InterfacesThread;
import cultivameCore.geometria.Punto;
import cultivameCore.utils.Math;

public class MainIU extends Canvas implements Refrescable {
	
	private ListaBotonJ2ME lista=new ListaBotonJ2ME();
	private Image fondo;
	private int puntero=0;
	private Display display;
	private InterfacesThread interfacesThread;
	private ListaUsuarioJ2ME listaUsr=null;
	
	public MainIU(final Display display, InterfacesThread threadInterface){
		//setMinimumSize(new Dimension(450, 300));
		//Cargo imagen de Fondo
		this.interfacesThread=threadInterface;
		this.display=display;
		try {
//			fondo=Image.createImage("");
			Image img=Image.createImage("/interfazUsuario/imagenes/medidores/medidorTmp.png");
			BotonExpListaBoton jugar=new BotonExpListaBoton (new Punto(50,50),img);
			Boton jugar2=new Boton(new Punto(50,100),img);
			jugar2.setAccion(new Accion(){
				public void action(){
//					EntornoIU pe=new EntornoIU(display,interfacesThread);
//					display.setCurrent(MainMidlet.pantallaEntorno);
					System.out.println("act00");				
				}
			});
			jugar.add(jugar2);
			lista.add(jugar);
			jugar2=new Boton(new Punto(50,100),img);
			jugar2.setAccion(new Accion(){
				public void action(){
//					EntornoIU pe=new EntornoIU(display,interfacesThread);
//					display.setCurrent(MainMidlet.pantallaEntorno);
					System.out.println("act1");				
				}
			});
			lista.add(jugar2);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
	
	public InterfacesThread getInterfacesThread() {
		return interfacesThread;
	}

	public void setInterfacesThread(InterfacesThread interfacesThread) {
		this.interfacesThread = interfacesThread;
	}

	public void paint(Graphics g){
		g.setColor(255,255,255);
		g.fillRect(0, 0, getWidth(), getHeight());
		//pintar botones
		for(int i=0;i<lista.length();i++){
			lista.get(i).drawme(g);
		}
		BotonAbstract botSelect=lista.getSelectedBoton(puntero);
		g.setColor(255,255,0);
		g.drawRect((int)botSelect.getPunto().getX(),(int)botSelect.getPunto().getY(),
				botSelect.getImg().getWidth(), botSelect.getImg().getHeight());
	}
	
	public void actualizar(int ms) {
		// TODO Auto-generated method stub
		repaint();
	}
	
	protected void keyPressed(int keyCode) {
		if (keyCode == -1) {// arriba
			puntero = (int) Math.abs((puntero + 1) % lista.length());
		} else if (keyCode == -2) {// abajo
			puntero = (int) Math.abs((puntero - 1) % lista.length());
		} else if (keyCode == -5) {
			BotonAbstract b=lista.getSelectedBoton(puntero);
			if(b!=null){
				b.click();
			}
		}
	};
	
	protected void pointerPressed(int keyCode) {};

}
